package com.hsgene.product.service;

import com.hsgene.common.util.result.ApiResult;
import com.hsgene.common.util.result.NullObject;
import com.hsgene.product.condition.CommodityCategoryCondition;
import com.hsgene.product.domain.GeneticCommodityCategory;

/**
 * @desc:
 * @author: fuxiang
 * @date: 2018/10/15 16:52
 */
public interface CommodityCategoryService {
    /**
     * 商品类目添加
     *
     * @param commodityCategory
     * @return
     */
    ApiResult addCategory(GeneticCommodityCategory commodityCategory);

    /**
     * 根据id获取类目
     *
     * @param id
     * @return
     */
    ApiResult<GeneticCommodityCategory> getById(String id);

    /**
     * 更新类目
     *
     * @param commodityCategory
     * @return
     */
    ApiResult updateCategory(GeneticCommodityCategory commodityCategory);

    /**
     * 删除
     *
     * @param id
     * @return
     */
    ApiResult deletecory(String id);

    /**
     * 列表
     *
     * @param condition
     * @return
     */
    ApiResult queryCategory(CommodityCategoryCondition condition);

    /**
     * @Description 获取全部类目
     * @Author FX
     * @CreateDate 2018/10/16 17:41
     * @Param
     * @Return
     */
    ApiResult getAll();

    /**
     * 根据名称查询类目
     *
     * @param category
     * @return
     * @Description
     * @Author FX
     * @CreateDate 2018/10/16 18:12
     */
    ApiResult getByName(String category);

    /**
     * 更新商品类目使用次数（以原子方式加1或减1）
     *
     * @param categoryId 类目id
     * @param isAddition true：增加；false：减少
     * @return 更新结果
     */
    ApiResult<NullObject> updateCategoryUsedCount(String categoryId, boolean isAddition);
}
